草庐IT

Javascript JsTestDriver Jasmine 和 Jasmine-jquery

全部标签

javascript - 我应该将 jQuery 或 DOM 对象作为参数传递吗? (性能问题)

哪个性能更好。foo(this);functionfoo(element){$(element).index();}或者我应该怎么做foo($(this));functionfoo($element){$element.index();}显然考虑到我将在函数中多次使用该参数。谢谢!康纳 最佳答案 如果无论如何要包装一个对象,那么在jQuery上包装对象的位置并不重要。唯一重要的是您缓存包装结果并且不要将其包装两次。就此而言,以下规则适用于许多插件的代码:1)jQuery变量都以$为前缀:var$this=$(this)2)永远不要在

javascript - jquery-ui draggable 和 dynamic Jquery-ui draggable?

这是我从http://jqueryui.com/demos/draggable/中获取的代码jQueryUIDraggable-Defaultfunctionality.draggable{width:150px;height:150px;padding:0.5em;}$(function(){$(".draggable").draggable();$('.content').click(function(){varhtmlData='Dragmearound';$('.demo').append(htmlData);});});DragmearoundTest我正在动态制作可拖动组件

javascript - 你如何使用 Jasmine BDD 卡住/伪造时间

我的代码中有这样一行newDate().getFullYear();我需要它总是在同一年返回。有什么办法可以用Jasmine做到这一点吗?谢谢。 最佳答案 在JavaScript中,您可以简单地覆盖测试设置中的函数:Date.prototype.getFullYear=function(){return2012}你也可以使用jasminespy:spyOn(Date,'getFullYear').andReturn(2012)另一种方法是将日期插入到您要测试的函数中。顺便说一句。编写可测试代码的最佳方式。不要在你的函数中创建新的实例

javascript - JS .checked vs jquery attr ('checked' ),有什么区别?

我想不通这个。根据W3Schools,checked属性设置或返回复选框的选中状态。那么为什么$('input').checked呢?$('div').slideDown():$('div').slideUp();不起作用?然而,使用prop确实有效。$('input').prop('checked')?$('div').slideDown():$('div').slideUp();这用于根据数据库值选中的复选框。 最佳答案 checked是DOM元素属性,因此在DOM元素上使用它而不是jQuery对象。$('input')[0].

javascript - 如何 : Pause and Play flexslider based on click event (jQuery)

我正在尝试将slider.pause()和slider.play()事件绑定(bind)到我的按钮(参见下面的代码)。它有效除非我点击播放按钮两次或者我在slider运行时点击播放按钮。然后它似乎运行另一个实例(或其他),因为它以两倍的速度运行并且暂停按钮不再停止slider问题:有没有办法在调用slider.play()之前测试slider是否正在运行,或者pause()和/或play()调用是否在错误的位置?请指教。$(document).ready(function(){$('.flexslider').flexslider({animation:"fade",slideshow

javascript - 用 jQuery/JavaScript 替换 , 的最后一个索引

我想用and替换字符串中逗号(,)的最后一个索引。例如。a,b,c和'a,bandc'例如q,w,e和q,wande 最佳答案 DEMOlastIndexOf找到传入的参数字符串的最后一个索引。varx='a,b,c';varpos=x.lastIndexOf(',');x=x.substring(0,pos)+'and'+x.substring(pos+1);console.log(x);你也可以使用这个功能functionreplace_last_comma_with_and(x){varpos=x.lastIndexOf(',

javascript - 以动态/编程方式将项目添加到 jQuery-ui 可排序

我有一些与此类似的jQueryUIPortlet:http://jqueryui.com/sortable/#portlets我想要的是在每个portlet中动态添加(当用户单击UI上的按钮时)一些像这样的框(显示为网格):http://jqueryui.com/sortable/#display-grid我想将它们从上到下和从左到右添加到portlet,定义每行“框”(项目)的最大数量。是否可以这样做(将它们动态添加到每个portlet中)?如果是这样,如何?一些想法?例如,假设我的asp.netmvc4View(最初为空)中有以下jquery-ui可排序block:所以当用户点击一

javascript - jquery参数化字符串就像rails中的参数化方法

jquery是否有像railsparameterize中那样的parameterize方法?我想使用jQuery参数化字符串,例如:"Jonh[Doe]"=>"john-doe""John(Doe)"=>"john-doe""{John}Doe/"=>"john-doe"我知道可以使用toLowerCase()和.replace(),但我想要最好的做法。现在我正在使用这个脚本toLowerCase().replace(/\[|\]|\(|\)|\{|\}|\\|\//g,'').replace(/\s/g,'-')或toLowerCase().replace(/[^a-z0-9\s]/

javascript - 如果文本框中的值已更改,如何在 jQuery/javascript 中设置监听器来监视?

如何在jQuery/javascript中设置监听器以监视文本框中的值是否已更改?该值由连接到平板电脑的条形码扫描仪输入文本框,因此每次扫描一个项目时,文本框中的值都会发生变化。我需要根据文本框中的值显示一些信息。 最佳答案 这取决于您的扫描器输入值的方式,以及输入值后扫描器软件执行的操作。如果扫描仪在输入值后将焦点从textarea上移开,您可以这样做:$('yourTextarea').bind('change',function(){alert("Changedto"+$(this).val());});如果它没有失去焦点,您

javascript - 如何在 jquery 验证器插件中触发错误事件

我正在运行jquery验证器并且页面很长,所以我希望页面向上滚动到顶部,因为我在页面顶部的表单上方显示错误,有谁知道我可以把代码放在哪里用于动画,以便在表单出现错误时触发? 最佳答案 您可以使用invalidHandleroption对于您想要的确切情况,如下所示:$("form").validate({rules:{...ruleshere...}invalidHandler:function(form,validator){$('html,body').animate({scrollTop:'0px'},300);}});